import 'package:enterprise_v6_app/app/components/toast_widget.dart';
import 'package:enterprise_v6_app/app/core/http/http.dart';
import 'package:enterprise_v6_app/app/core/utils/interface.dart';
import 'package:enterprise_v6_app/app/core/utils/log_util.dart';
import 'package:enterprise_v6_app/app/core/utils/user_manager.dart';
import 'package:enterprise_v6_app/app/data/entities/application/ticket_plan_entity.dart';
import 'package:enterprise_v6_app/app/modules/application/special_operation/special_list/special_list_controller.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

class JobStopAndOffController extends GetxController {
  /// [_type] 1:作业中断 2:终止作业
  final int _type = Get.arguments['type'] as int;

  TicketPlanReceiptLists ticketPlan = Get.arguments['value'] as TicketPlanReceiptLists;

  String get title => _type == 1 ? '作业中断' : '终止作业';

  String get argument => _type == 1 ? '中断理由' : '终止原因';

  // 输入框
  TextEditingController textEditingController = TextEditingController();


  complete() {
    if (textEditingController.value.text.isEmpty) {
      AppToast.showWarning('请输入原因!');
      return;
    }

    if (_type == 1) {
      jobInterrupt();
    } else {
      jobStop();
    }
  }

  // 作业中断
  void jobInterrupt() async {
    final data = {
      'companyCode': '', // 企业编码
      'createBy': '', // 创建人
      'createById': '', // 创建人Id
      'createDate': '', // 创建时间
      'deleted': '', // 删除标记 正常-0 已删除-1
      'id': '', // 主键ID
      'interruptDate': '', // 中断时间
      'interruptReason': textEditingController.value.text, // 中断原因
      'interruptSign': '', // 中断人签字
      'interruptStartDate': '', // 中断后开始时间
      'interruptUserId': UserManager.getUserId(), // 中断人员ID
      'interruptUserName': UserManager.getUser()!.systemUser!.username, // 中断人姓名
      'ticketPlanId': ticketPlan.ticketPlanId, // 作业计划ID
      'ticketReceiptId': ticketPlan.id, // 作业票ID
      'updateBy': '', // 修改人
      'updateById': '', // 修改人Id
      'updateDate': '' // 修改时间
    };
    final res = await HttpUtil().generatePostRequest(Interface.stopWork, data: data).execute();
    res.onSuccess((result) {
      AppLogger.log(result.data.toString());
      Get.back();
      Get.back();
      //外部列表controller,刷新列表数据
      final specialListController = Get.find<SpecialListController>();
      specialListController.refreshPage();
    });
  }

  // 终止作业
  void jobStop() async {
    final data = {
      'checkReason': textEditingController.value.text, // 中断原因
      'ticketPlanId': ticketPlan.ticketPlanId, // 作业计划ID
      'ticketReceiptId': ticketPlan.id, // 作业票ID
    };
    final res = await HttpUtil().generatePostRequest(Interface.workStop, data: data).execute();
    res.onSuccess((result) {
      AppLogger.log(result.data.toString());
      Get.back();
      Get.back();
      //外部列表controller,刷新列表数据
      final specialListController = Get.find<SpecialListController>();
      specialListController.refreshPage();
    });
  }

  @override
  void onClose() {
    super.onClose();
    textEditingController.dispose();
  }
}
